Responsive Design and Breakpoints
**Referenced Files in This Document** - [02-global-utilities.css](file://src/assets/css/modules/02-global-utilities.css) - [04-navigation.css](file://src/assets/css/modules/04-navigation.css) - [08-carousel-shared-infrastructure.css](file://src/assets/css/modules/08-carousel-shared-infrastructure.css) - [11-testimonials-carousel.css](file://src/assets/css/modules/11-testimonials-carousel.css) - [12-team-grid-homepage-teaser.css](file://src/assets/css/modules/12-team-grid-homepage-teaser.css) - [16-contact-form.css](file://src/assets/css/modules/16-contact-form.css) - [24-contact-page.css](file://src/assets/css/modules/24-contact-page.css) - [25-responsive-tablet-max-width-1024px.css](file://src/assets/css/modules/25-responsive-tablet-max-width-1024px.css) - [26-responsive-mobile-max-width-900px.css](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css) - [27-responsive-small-mobile-max-width-600px.css](file://src/assets/css/modules/27-responsive-small-mobile-max-width-600px.css) - [28-responsive-extra-small-max-width-480px.css](file://src/assets/css/modules/28-responsive-extra-small-max-width-480px.css) - [29-reduced-motion.css](file://src/assets/css/modules/29-reduced-motion.css) - [navigation.js](file://src/assets/js/modules/navigation.js) - [carousel-system.js](file://src/assets/js/modules/carousel-system.js)Table of Contents
- Introduction
- Project Structure
- Core Components
- Architecture Overview
- Detailed Component Analysis
- Dependency Analysis
- Performance Considerations
- Troubleshooting Guide
- Conclusion
Introduction
This document explains the responsive design system and breakpoint management used across the project. It focuses on a mobile-first approach with four primary breakpoints targeting tablet (max-width 1024px), mobile (max-width 900px), small mobile (max-width 600px), and extra small (max-width 480px). It documents responsive utility classes, grid systems, component adaptations, accessibility considerations (including reduced motion support), responsive navigation patterns, carousel adaptations, and form layouts. Practical examples show how media queries are organized and how components adapt across screen sizes. Performance implications and optimization techniques are also covered.
Project Structure
The responsive system is implemented via modular CSS files grouped by feature and breakpoint, complemented by JavaScript modules for interactive components. Global utilities define baseline styles and accessibility defaults. Breakpoint-specific files apply targeted adjustments for navigation, carousels, grids, forms, and page sections.
graph TB
subgraph "Global"
GU["02-global-utilities.css"]
end
subgraph "Navigation"
NAVCSS["04-navigation.css"]
NAVJS["navigation.js"]
end
subgraph "Carousels"
CARINFRA["08-carousel-shared-infrastructure.css"]
TESTCAR["11-testimonials-carousel.css"]
CARJS["carousel-system.js"]
end
subgraph "Grids & Forms"
TEAMGRID["12-team-grid-homepage-teaser.css"]
CONTACTFORM["16-contact-form.css"]
CONTACTPAGE["24-contact-page.css"]
end
subgraph "Breakpoints"
BP1024["25-responsive-tablet-max-width-1024px.css"]
BP900["26-responsive-mobile-max-width-900px.css"]
BP600["27-responsive-small-mobile-max-width-600px.css"]
BP480["28-responsive-extra-small-max-width-480px.css"]
end
subgraph "Accessibility"
REDMOTION["29-reduced-motion.css"]
end
GU --> NAVCSS
GU --> CARINFRA
GU --> TEAMGRID
GU --> CONTACTFORM
GU --> CONTACTPAGE
NAVCSS --> NAVJS
CARINFRA --> TESTCAR
CARINFRA --> CARJS
BP1024 --> NAVCSS
BP1024 --> CARINFRA
BP1024 --> TEAMGRID
BP1024 --> CONTACTFORM
BP1024 --> CONTACTPAGE
BP900 --> NAVCSS
BP900 --> CARINFRA
BP900 --> TEAMGRID
BP900 --> CONTACTFORM
BP900 --> CONTACTPAGE
BP600 --> TEAMGRID
BP600 --> CONTACTFORM
BP480 --> TEAMGRID
REDMOTION --> GU
Diagram sources
- [02-global-utilities.css:1-64](file://src/assets/css/modules/02-global-utilities.css#L1-L64)
- [04-navigation.css:1-101](file://src/assets/css/modules/04-navigation.css#L1-L101)
- [08-carousel-shared-infrastructure.css:1-90](file://src/assets/css/modules/08-carousel-shared-infrastructure.css#L1-L90)
- [11-testimonials-carousel.css:1-93](file://src/assets/css/modules/11-testimonials-carousel.css#L1-L93)
- [12-team-grid-homepage-teaser.css:1-117](file://src/assets/css/modules/12-team-grid-homepage-teaser.css#L1-L117)
- [16-contact-form.css:1-212](file://src/assets/css/modules/16-contact-form.css#L1-L212)
- [24-contact-page.css:1-16](file://src/assets/css/modules/24-contact-page.css#L1-L16)
- [25-responsive-tablet-max-width-1024px.css:1-333](file://src/assets/css/modules/25-responsive-tablet-max-width-1024px.css#L1-L333)
- [26-responsive-mobile-max-width-900px.css:1-358](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L1-L358)
- [27-responsive-small-mobile-max-width-600px.css:1-36](file://src/assets/css/modules/27-responsive-small-mobile-max-width-600px.css#L1-L36)
- [28-responsive-extra-small-max-width-480px.css:1-13](file://src/assets/css/modules/28-responsive-extra-small-max-width-480px.css#L1-L13)
- [29-reduced-motion.css:1-646](file://src/assets/css/modules/29-reduced-motion.css#L1-L646)
Section sources
- [02-global-utilities.css:1-64](file://src/assets/css/modules/02-global-utilities.css#L1-L64)
- [04-navigation.css:1-101](file://src/assets/css/modules/04-navigation.css#L1-L101)
- [08-carousel-shared-infrastructure.css:1-90](file://src/assets/css/modules/08-carousel-shared-infrastructure.css#L1-L90)
- [11-testimonials-carousel.css:1-93](file://src/assets/css/modules/11-testimonials-carousel.css#L1-L93)
- [12-team-grid-homepage-teaser.css:1-117](file://src/assets/css/modules/12-team-grid-homepage-teaser.css#L1-L117)
- [16-contact-form.css:1-212](file://src/assets/css/modules/16-contact-form.css#L1-L212)
- [24-contact-page.css:1-16](file://src/assets/css/modules/24-contact-page.css#L1-L16)
- [25-responsive-tablet-max-width-1024px.css:1-333](file://src/assets/css/modules/25-responsive-tablet-max-width-1024px.css#L1-L333)
- [26-responsive-mobile-max-width-900px.css:1-358](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L1-L358)
- [27-responsive-small-mobile-max-width-600px.css:1-36](file://src/assets/css/modules/27-responsive-small-mobile-max-width-600px.css#L1-L36)
- [28-responsive-extra-small-max-width-480px.css:1-13](file://src/assets/css/modules/28-responsive-extra-small-max-width-480px.css#L1-L13)
- [29-reduced-motion.css:1-646](file://src/assets/css/modules/29-reduced-motion.css#L1-L646)
Core Components
- Global utilities: Baseline typography, focus styles, and global transitions.
- Navigation: Desktop-style navigation with a hamburger toggle that becomes active on smaller screens.
- Carousels: Shared infrastructure for navigation buttons and dots; component-specific styles for testimonials.
- Grids and forms: CSS Grid-based layouts with responsive adjustments per breakpoint.
- Accessibility: Reduced motion support and focus-visible styles.
Section sources
- [02-global-utilities.css:1-64](file://src/assets/css/modules/02-global-utilities.css#L1-L64)
- [04-navigation.css:1-101](file://src/assets/css/modules/04-navigation.css#L1-L101)
- [08-carousel-shared-infrastructure.css:1-90](file://src/assets/css/modules/08-carousel-shared-infrastructure.css#L1-L90)
- [11-testimonials-carousel.css:1-93](file://src/assets/css/modules/11-testimonials-carousel.css#L1-L93)
- [16-contact-form.css:1-212](file://src/assets/css/modules/16-contact-form.css#L1-L212)
- [29-reduced-motion.css:1-646](file://src/assets/css/modules/29-reduced-motion.css#L1-L646)
Architecture Overview
The responsive architecture follows a layered approach:
- Base styles in global utilities.
- Component styles in dedicated modules.
- Breakpoint-specific overrides applied in descending order of specificity.
- JavaScript modules enhance interactivity for navigation and carousels.
graph TB
Base["Base Styles<br/>Global Utilities"] --> Nav["Navigation Module"]
Base --> CarInfra["Carousel Infrastructure"]
Base --> GridForm["Grids & Forms"]
Nav --> BP1024N["Breakpoint 1024px"]
CarInfra --> BP1024C["Breakpoint 1024px"]
GridForm --> BP1024G["Breakpoint 1024px"]
BP1024N --> BP900N["Breakpoint 900px"]
BP1024C --> BP900C["Breakpoint 900px"]
BP1024G --> BP900G["Breakpoint 900px"]
BP900N --> BP600N["Breakpoint 600px"]
BP900C --> BP600C["Breakpoint 600px"]
BP900G --> BP600G["Breakpoint 600px"]
BP600N --> BP480N["Breakpoint 480px"]
BP600C --> BP480C["Breakpoint 480px"]
BP600G --> BP480G["Breakpoint 480px"]
Acc["Reduced Motion"] --> Base
Diagram sources
- [02-global-utilities.css:1-64](file://src/assets/css/modules/02-global-utilities.css#L1-L64)
- [04-navigation.css:1-101](file://src/assets/css/modules/04-navigation.css#L1-L101)
- [08-carousel-shared-infrastructure.css:1-90](file://src/assets/css/modules/08-carousel-shared-infrastructure.css#L1-L90)
- [11-testimonials-carousel.css:1-93](file://src/assets/css/modules/11-testimonials-carousel.css#L1-L93)
- [12-team-grid-homepage-teaser.css:1-117](file://src/assets/css/modules/12-team-grid-homepage-teaser.css#L1-L117)
- [16-contact-form.css:1-212](file://src/assets/css/modules/16-contact-form.css#L1-L212)
- [25-responsive-tablet-max-width-1024px.css:1-333](file://src/assets/css/modules/25-responsive-tablet-max-width-1024px.css#L1-L333)
- [26-responsive-mobile-max-width-900px.css:1-358](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L1-L358)
- [27-responsive-small-mobile-max-width-600px.css:1-36](file://src/assets/css/modules/27-responsive-small-mobile-max-width-600px.css#L1-L36)
- [28-responsive-extra-small-max-width-480px.css:1-13](file://src/assets/css/modules/28-responsive-extra-small-max-width-480px.css#L1-L13)
- [29-reduced-motion.css:1-646](file://src/assets/css/modules/29-reduced-motion.css#L1-L646)
Detailed Component Analysis
Responsive Breakpoints and Media Queries
- Breakpoint ordering: The project applies media queries in descending order of screen width, ensuring later rules override earlier ones appropriately.
- Tablet (max-width 1024px): Introduces mobile menu behavior, adjusts hero spacing, and sets grid layouts for teams, cases, and features.
- Mobile (max-width 900px): Reduces base font size, tightens navigation, stacks hero content, and switches many grids to single-column layouts.
- Small mobile (max-width 600px): Further refines grids and typography for narrow screens.
- Extra small (max-width 480px): Minimal adjustments for critical components like team grids.
Practical example references:
- Tablet adjustments for navigation and carousels: [25-responsive-tablet-max-width-1024px.css:22-186](file://src/assets/css/modules/25-responsive-tablet-max-width-1024px.css#L22-L186)
- Mobile hero and typography scaling: [26-responsive-mobile-max-width-900px.css:68-79](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L68-L79)
- Small mobile stacking and form rows: [27-responsive-small-mobile-max-width-600px.css:7-26](file://src/assets/css/modules/27-responsive-small-mobile-max-width-600px.css#L7-L26)
- Extra small team grid and CTA sizing: [28-responsive-extra-small-max-width-480px.css:5-9](file://src/assets/css/modules/28-responsive-extra-small-max-width-480px.css#L5-L9)
Section sources
- [25-responsive-tablet-max-width-1024px.css:1-333](file://src/assets/css/modules/25-responsive-tablet-max-width-1024px.css#L1-L333)
- [26-responsive-mobile-max-width-900px.css:1-358](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L1-L358)
- [27-responsive-small-mobile-max-width-600px.css:1-36](file://src/assets/css/modules/27-responsive-small-mobile-max-width-600px.css#L1-L36)
- [28-responsive-extra-small-max-width-480px.css:1-13](file://src/assets/css/modules/28-responsive-extra-small-max-width-480px.css#L1-L13)
Responsive Utility Classes and Typography Scaling
- Global utilities set baseline font-size and focus-visible styles.
- Typography scaling leverages clamp() for hero titles and subtitles to remain readable across breakpoints.
- Reduced motion support disables animations and transitions for users who prefer minimal motion.
References:
- Global baseline and focus styles: [02-global-utilities.css:5-51](file://src/assets/css/modules/02-global-utilities.css#L5-L51)
- Hero title scaling: [26-responsive-mobile-max-width-900px.css:68-73](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L68-L73)
- Reduced motion behavior: [29-reduced-motion.css:5-13](file://src/assets/css/modules/29-reduced-motion.css#L5-L13)
Section sources
- [02-global-utilities.css:1-64](file://src/assets/css/modules/02-global-utilities.css#L1-L64)
- [26-responsive-mobile-max-width-900px.css:68-79](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L68-L79)
- [29-reduced-motion.css:1-646](file://src/assets/css/modules/29-reduced-motion.css#L1-L646)
Grid Systems and Component Adaptations
- Team grid: Desktop 4-column → tablet 2-column → small mobile full width.
- Contact form: Two-column layout → single column on mobile; form rows stack on small/mobile.
- Feature and process grids: Adjust to single column on smaller screens.
- Testimonial cards: Width and padding adjust per breakpoint for optimal readability.
References:
- Team grid desktop and tablet: [12-team-grid-homepage-teaser.css:10-16](file://src/assets/css/modules/12-team-grid-homepage-teaser.css#L10-L16), [25-responsive-tablet-max-width-1024px.css:213-220](file://src/assets/css/modules/25-responsive-tablet-max-width-1024px.css#L213-L220)
- Contact form layout and rows: [16-contact-form.css:12-91](file://src/assets/css/modules/16-contact-form.css#L12-L91), [26-responsive-mobile-max-width-900px.css:318-321](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L318-L321)
- Testimonial card widths: [11-testimonials-carousel.css:30-33](file://src/assets/css/modules/11-testimonials-carousel.css#L30-L33), [25-responsive-tablet-max-width-1024px.css:198-206](file://src/assets/css/modules/25-responsive-tablet-max-width-1024px.css#L198-L206)
Section sources
- [12-team-grid-homepage-teaser.css:1-117](file://src/assets/css/modules/12-team-grid-homepage-teaser.css#L1-L117)
- [16-contact-form.css:1-212](file://src/assets/css/modules/16-contact-form.css#L1-L212)
- [11-testimonials-carousel.css:1-93](file://src/assets/css/modules/11-testimonials-carousel.css#L1-L93)
- [25-responsive-tablet-max-width-1024px.css:198-220](file://src/assets/css/modules/25-responsive-tablet-max-width-1024px.css#L198-L220)
- [26-responsive-mobile-max-width-900px.css:318-321](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L318-L321)
Responsive Navigation Patterns
- Desktop navigation remains visible; the hamburger toggle is hidden by default and becomes active on smaller screens.
- On tablet and below, a full-screen mobile menu appears with staggered animations and theme-aware styling.
- JavaScript manages toggling, focus trapping, and closing on escape or clicks outside.
sequenceDiagram
participant U as "User"
participant T as "Toggle Button"
participant M as "Mobile Menu"
participant D as "Document"
U->>T : Click
T->>T : Add/remove "active"
T->>M : Add/remove "active"
T->>D : Toggle "menu-open" body class
T->>T : Update aria-expanded and aria-label
M->>U : Focus first link (delayed)
U->>D : Press Escape
D->>T : Trigger close
U->>D : Click outside
D->>T : Trigger close
Diagram sources
- [04-navigation.css:72-98](file://src/assets/css/modules/04-navigation.css#L72-L98)
- [25-responsive-tablet-max-width-1024px.css:75-151](file://src/assets/css/modules/25-responsive-tablet-max-width-1024px.css#L75-L151)
- [navigation.js:3-75](file://src/assets/js/modules/navigation.js#L3-L75)
Section sources
- [04-navigation.css:1-101](file://src/assets/css/modules/04-navigation.css#L1-L101)
- [25-responsive-tablet-max-width-1024px.css:22-186](file://src/assets/css/modules/25-responsive-tablet-max-width-1024px.css#L22-L186)
- [navigation.js:1-78](file://src/assets/js/modules/navigation.js#L1-L78)
Carousel Adaptations
- Shared infrastructure defines arrow buttons and dots; component-specific styles define item widths and scroll behavior.
- JavaScript calculates items per page, snap points, and updates active dot indicators on scroll and resize.
- Accessibility attributes are set for keyboard navigation and screen readers.
flowchart TD
Start(["Init Carousels"]) --> Setup["Setup Configurations"]
Setup --> FindViewport["Find Viewport and Track"]
FindViewport --> ComputeItems["Compute Items Per Page"]
ComputeItems --> RenderDots["Render Dots and Snap Points"]
RenderDots --> BindEvents["Bind Scroll/Resize/Drag Events"]
BindEvents --> UpdateState["Update Active Dot and Arrows"]
UpdateState --> KeyboardNav["Keyboard Navigation (Arrow Keys)"]
KeyboardNav --> DragScroll["Drag-to-Scroll"]
DragScroll --> End(["Ready"])
Diagram sources
- [08-carousel-shared-infrastructure.css:5-89](file://src/assets/css/modules/08-carousel-shared-infrastructure.css#L5-L89)
- [11-testimonials-carousel.css:17-50](file://src/assets/css/modules/11-testimonials-carousel.css#L17-L50)
- [carousel-system.js:3-166](file://src/assets/js/modules/carousel-system.js#L3-L166)
Section sources
- [08-carousel-shared-infrastructure.css:1-90](file://src/assets/css/modules/08-carousel-shared-infrastructure.css#L1-L90)
- [11-testimonials-carousel.css:1-93](file://src/assets/css/modules/11-testimonials-carousel.css#L1-L93)
- [carousel-system.js:1-169](file://src/assets/js/modules/carousel-system.js#L1-L169)
Form Layouts Across Screen Sizes
- Desktop: Two-column contact info and form panels with generous gaps.
- Mobile: Single-column layout; form rows stack; CTA buttons and paddings adjust for readability.
- Accessibility: Inputs maintain focus styles and label animations; checkboxes styled with custom checkmarks.
References:
- Desktop two-column layout: [16-contact-form.css:12-18](file://src/assets/css/modules/16-contact-form.css#L12-L18)
- Mobile stacking and hero title scaling: [26-responsive-mobile-max-width-900px.css:318-321](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L318-L321), [24-contact-page.css](file://src/assets/css/modules/24-contact-page.css#L13)
- Input label animations and focus styles: [16-contact-form.css:112-132](file://src/assets/css/modules/16-contact-form.css#L112-L132)
Section sources
- [16-contact-form.css:1-212](file://src/assets/css/modules/16-contact-form.css#L1-L212)
- [24-contact-page.css:1-16](file://src/assets/css/modules/24-contact-page.css#L1-L16)
- [26-responsive-mobile-max-width-900px.css:318-321](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L318-L321)
Accessibility Considerations
- Reduced motion: Disables transitions and animations for users who prefer minimal motion.
- Focus-visible: Consistent focus rings for keyboard navigation.
- ARIA roles and labels: Carousels and navigation include appropriate ARIA attributes for assistive technologies.
References:
- Reduced motion behavior: [29-reduced-motion.css:5-13](file://src/assets/css/modules/29-reduced-motion.css#L5-L13)
- Focus-visible styles: [02-global-utilities.css:46-51](file://src/assets/css/modules/02-global-utilities.css#L46-L51)
- Carousel ARIA roles and labels: [carousel-system.js:121-128](file://src/assets/js/modules/carousel-system.js#L121-L128)
Section sources
- [29-reduced-motion.css:1-646](file://src/assets/css/modules/29-reduced-motion.css#L1-L646)
- [02-global-utilities.css:46-51](file://src/assets/css/modules/02-global-utilities.css#L46-L51)
- [carousel-system.js:121-128](file://src/assets/js/modules/carousel-system.js#L121-L128)
Dependency Analysis
The responsive system exhibits low coupling between modules, with CSS modules applying scoped overrides and JavaScript modules enhancing behavior without heavy cross-dependencies. Navigation and carousels depend on shared infrastructure CSS for consistent styling and accessibility.
graph LR
GU["02-global-utilities.css"] --> NAVCSS["04-navigation.css"]
GU --> CARINFRA["08-carousel-shared-infrastructure.css"]
GU --> TEAMGRID["12-team-grid-homepage-teaser.css"]
GU --> CONTACTFORM["16-contact-form.css"]
NAVCSS --> NAVJS["navigation.js"]
CARINFRA --> TESTCAR["11-testimonials-carousel.css"]
CARINFRA --> CARJS["carousel-system.js"]
BP1024["25-responsive-tablet-max-width-1024px.css"] --> NAVCSS
BP900["26-responsive-mobile-max-width-900px.css"] --> NAVCSS
BP600["27-responsive-small-mobile-max-width-600px.css"] --> TEAMGRID
BP480["28-responsive-extra-small-max-width-480px.css"] --> TEAMGRID
Diagram sources
- [02-global-utilities.css:1-64](file://src/assets/css/modules/02-global-utilities.css#L1-L64)
- [04-navigation.css:1-101](file://src/assets/css/modules/04-navigation.css#L1-L101)
- [08-carousel-shared-infrastructure.css:1-90](file://src/assets/css/modules/08-carousel-shared-infrastructure.css#L1-L90)
- [11-testimonials-carousel.css:1-93](file://src/assets/css/modules/11-testimonials-carousel.css#L1-L93)
- [12-team-grid-homepage-teaser.css:1-117](file://src/assets/css/modules/12-team-grid-homepage-teaser.css#L1-L117)
- [16-contact-form.css:1-212](file://src/assets/css/modules/16-contact-form.css#L1-L212)
- [25-responsive-tablet-max-width-1024px.css:1-333](file://src/assets/css/modules/25-responsive-tablet-max-width-1024px.css#L1-L333)
- [26-responsive-mobile-max-width-900px.css:1-358](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L1-L358)
- [27-responsive-small-mobile-max-width-600px.css:1-36](file://src/assets/css/modules/27-responsive-small-mobile-max-width-600px.css#L1-L36)
- [28-responsive-extra-small-max-width-480px.css:1-13](file://src/assets/css/modules/28-responsive-extra-small-max-width-480px.css#L1-L13)
- [navigation.js:1-78](file://src/assets/js/modules/navigation.js#L1-L78)
- [carousel-system.js:1-169](file://src/assets/js/modules/carousel-system.js#L1-L169)
Section sources
- [02-global-utilities.css:1-64](file://src/assets/css/modules/02-global-utilities.css#L1-L64)
- [04-navigation.css:1-101](file://src/assets/css/modules/04-navigation.css#L1-L101)
- [08-carousel-shared-infrastructure.css:1-90](file://src/assets/css/modules/08-carousel-shared-infrastructure.css#L1-L90)
- [11-testimonials-carousel.css:1-93](file://src/assets/css/modules/11-testimonials-carousel.css#L1-L93)
- [12-team-grid-homepage-teaser.css:1-117](file://src/assets/css/modules/12-team-grid-homepage-teaser.css#L1-L117)
- [16-contact-form.css:1-212](file://src/assets/css/modules/16-contact-form.css#L1-L212)
- [25-responsive-tablet-max-width-1024px.css:1-333](file://src/assets/css/modules/25-responsive-tablet-max-width-1024px.css#L1-L333)
- [26-responsive-mobile-max-width-900px.css:1-358](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L1-L358)
- [27-responsive-small-mobile-max-width-600px.css:1-36](file://src/assets/css/modules/27-responsive-small-mobile-max-width-600px.css#L1-L36)
- [28-responsive-extra-small-max-width-480px.css:1-13](file://src/assets/css/modules/28-responsive-extra-small-max-width-480px.css#L1-L13)
- [navigation.js:1-78](file://src/assets/js/modules/navigation.js#L1-L78)
- [carousel-system.js:1-169](file://src/assets/js/modules/carousel-system.js#L1-L169)
Performance Considerations
- CSS optimization:
- Use of clamp() for fluid typography reduces the need for multiple breakpoints and improves maintainability.
- Minimizing redundant property declarations and leveraging shared infrastructure reduces CSS size.
- Avoid excessive transforms and shadows on many elements at once to prevent layout thrashing.
- Asset loading strategies:
- Lazy-load images within carousels and grids to improve initial page load.
- Defer non-critical JavaScript initialization until after initial render.
- JavaScript performance:
- Debounce or throttle resize handlers; the carousel system uses passive listeners and scroll updates efficiently.
- Prefer translate3d or transform for animations to leverage GPU acceleration.
- Accessibility and performance:
- Reduced motion reduces expensive animations and transitions for users who opt-in.
[No sources needed since this section provides general guidance]
Troubleshooting Guide
- Navigation does not open/close:
- Verify the presence of the toggle and menu elements and that the JavaScript initializes correctly.
- Confirm ARIA attributes are updated and focus is managed.
- Reference: [navigation.js:3-75](file://src/assets/js/modules/navigation.js#L3-L75), [04-navigation.css:72-98](file://src/assets/css/modules/04-navigation.css#L72-L98)
- Carousel arrows disabled unexpectedly:
- Check that items per page calculation is working and snap points are generated.
- Ensure event listeners are attached and updateState runs on scroll and resize.
- Reference: [carousel-system.js:81-120](file://src/assets/js/modules/carousel-system.js#L81-L120), [08-carousel-shared-infrastructure.css:13-34](file://src/assets/css/modules/08-carousel-shared-infrastructure.css#L13-L34)
- Forms overlap on small screens:
- Confirm grid-template-columns switch to single-column and form-row stacks.
- Reference: [16-contact-form.css:87-91](file://src/assets/css/modules/16-contact-form.css#L87-L91), [26-responsive-mobile-max-width-900px.css:318-321](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L318-L321)
- Excessive motion causing discomfort:
- Ensure reduced motion media query is applied and animations are disabled.
- Reference: [29-reduced-motion.css:5-13](file://src/assets/css/modules/29-reduced-motion.css#L5-L13)
Section sources
- [navigation.js:1-78](file://src/assets/js/modules/navigation.js#L1-L78)
- [04-navigation.css:72-98](file://src/assets/css/modules/04-navigation.css#L72-L98)
- [carousel-system.js:81-120](file://src/assets/js/modules/carousel-system.js#L81-L120)
- [08-carousel-shared-infrastructure.css:13-34](file://src/assets/css/modules/08-carousel-shared-infrastructure.css#L13-L34)
- [16-contact-form.css:87-91](file://src/assets/css/modules/16-contact-form.css#L87-L91)
- [26-responsive-mobile-max-width-900px.css:318-321](file://src/assets/css/modules/26-responsive-mobile-max-width-900px.css#L318-L321)
- [29-reduced-motion.css:5-13](file://src/assets/css/modules/29-reduced-motion.css#L5-L13)
Conclusion
The responsive design system employs a clear mobile-first strategy with four breakpoint files tailored to tablet, mobile, small mobile, and extra small screens. Shared infrastructure ensures consistent navigation and carousel behavior, while component-specific overrides refine layouts and typography. Accessibility is addressed through reduced motion support and robust focus management. The modular structure promotes maintainability and performance, with practical examples across navigation, carousels, grids, and forms.
[No sources needed since this section summarizes without analyzing specific files]